Web3的provider的正确使用

您所在的位置:网站首页 知乎 web3 的 provider到底是什么 Web3的provider的正确使用

Web3的provider的正确使用

2024-07-10 20:35| 来源: 网络整理| 查看: 265

我们在进行测试的时候,如果使用ganache,那么就是会用ganache提供的provider

const web3 = new Web3(ganache.provider());

我们进行合约部署的时候,可以使用infura提供的provider

let provider = new HDWalletProvider(mnemonic, "https://rinkeby.infura.io/v3/2b86c426683f4a6095fd175fe931d799"); const web3 = new Web3(provider);

但是注意上面的mnemonic是12个账户助记词,这12个词是合约部署者的

在和以太坊的交互中,面对的成千上百的用户,如果用户都使用部署者的账户,大量的操作消耗gas都是部署者的账户中的钱

因此在交互中,这里应该换为用户使用的钱包的provider,例如metamask的provider 我们只要装了metamask插件,那么浏览器中就被注入了web3

浏览器的web3.png

没装当然就是没有的

浏览器无web3.png 因此我们是可以拿到用户的provider的

但是!!!

低版本Web3.png 这个web3的版本是相当低的,1.0的在进行紧张的测试中,还未在该插件中上线 但是我们开发使用的就是1.0的,如何让1.0版本的web3使用0.2版本的provider呢?

上面的情况打个比方: 我们给用户提供了高版本的iphone,但是没有也不能提供电话卡,不能打电话 metamask提供了低版本的诺基亚,有电话卡,能打电话 那么我们就需要用户使用我们的iphone,并且把诺基亚的卡插进来 我们使用新的模块web3.js组合web3

import Web3 from 'web3';//ipone without card const web3 = new Web3(window.web3.currentProvider);//use NOKIA card export default web3;//export iphone with nokia card

导出后我们在其他的模块中使用的就是这个组装web3

注意,window.web3.currentProvider能找到一定是要装了metamask或者类似插件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3